function move(ele, options, fn = function () {}) {
  let count = 0

  for (let key in options) {
    count++

    // 运动一个样式的代码
    if (key === 'opacity') options[key] *= 100

    const timer = setInterval(() => {

      // 1. 拿到当前值
      let current
      if (key === 'opacity') {
        current = window.getComputedStyle(ele)[key] * 100
      } else {
        current = parseInt(window.getComputedStyle(ele)[key])
      }

      // 2. 计算本次的距离
      let distance = (options[key] - current) / 10
      distance = distance > 0 ? Math.ceil(distance) : Math.floor(distance)

      // 3. 判断
      if (current === options[key]) {
        // 表示运动到位了
        clearInterval(timer)

        // 计数器--
        count--

        // 表示运动结束了
        if (count === 0) fn()
      } else {
        // 需要进行判断
        if (key === 'opacity') {
          ele.style[key] = (current + distance) / 100
        } else {
          ele.style[key] = current + distance + 'px'
        }
      }
    }, 20)
  }
}
